package com.platform.dahuatech.icc.entity;

import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author 贾伟焘
 * @version 1.0
 * @Description TODO
 * @Date 2022/7/8 11:04
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "DeviceTree")
public class DeviceTree {
    /**
     * 节点id
     */
    private String id;

    /**
     * 节点名称 或设备名称 或通道名称
     */
    private String name;

    /**
     * 上级节点id
     */
    private String pId;

    /**
     * 节点类型，预留后期出现多棵树场景（组织节点取值为：根组织编码，如001；设备节点取值为：
     * 根组织编码+两位设备分类（不足两位前面补0）+两位设备类型（不足两位前面补0））；
     * 设备节点取值为：根组织编码+设备分类（两位，不足两位前面补0）+设备类型（两位，不足两位前面补0）＋通道所属单元类型（两位，不足两位前面补0），
     * 如：001010601
     */
    private String type;
    /**
     * 设备树节点类型
     */
    private String nodeType;

    /**
     * 节点图标(组织节点图标为：org-树根节点编码，
     * 如基础组织树中组织节点图标为
     * org-001;设备节点图标：
     * dev-设备分类-设备类型-设备型号；
     * 通道节点图标：ch-单元类型-通道类型（channelType）-摄像头类型(cameraType))
     * ,设备型号、通道类型、摄像头类型中如果没有，默认为0，节点图标显示按照需要设定展示图标
     */
    private String iconType;
    /**
     * 是否存在子节点
     */
    private Boolean isParent;


    /**
     * 组织权限状态属性
     */
    private int checkStat;


    /**
     * 是否存勾选
     */
    private Boolean isCheck;

    /**
     * 设备大类
     */
    private int deviceCategory;

    /**
     * 设备型号（设备节点/通道节点属性）
     */
    private String deviceModel;

    /**
     * 设备小类
     */
    private int deviceType;

    /**
     * 所属设备编码（通道节点属性）
     */
    private String deviceCode;

    /**
     * 通道单元类型（通道节点属性）
     */
    private int unitType;

    /**
     * 所属组织（设备节点/通道节点属性）
     */
    private String ownerCode;

    /**
     * 摄像头类型（通道节点属性
     */
    private String cameraType;

    /**
     * 能力集（设备/通道节点属性,具体取值见各设备能力集及单元能力集定义，数据采用二进制保存，每一位代表一种能力集，1表示有该能力集，0 为没有）
     */
    private String capability;

    /**
     * 组织序列号
     */
    private String sn;

    /**
     * 是否虚拟设备(null的话代表否）
     */
    private int isVirtual;

    /**
     * 通道类型
     */
    private String channelType;

    /**
     * 通道编号
     */
    private String channelCode;

    /**
     * 通道状态 0:关闭 1:开启
     */
    private String stat;


}
